458. Декодер
Имеется текст,
закодированный в результате простой арифметической манипуляции над ASCII кодами
символов. Необходимо декодировать текст.
Вход. Закодированный текст.
Выход.
Исходный текст.
1JKJ'pz'{ol'{yhklthyr'vm'{ol'Jvu{yvs'Kh{h'Jvywvyh{pvu5
1PIT'pz'h'{yhklthyr'vm'{ol'Pu{lyuh{pvuhs'I|zpulzz'Thjopul'Jvywvyh{pvu5
1KLJ'pz'{ol'{yhklthyr'vm'{ol'Kpnp{hs'Lx|pwtlu{'Jvywvyh{pvu5
*CDC is the trademark of the Control Data Corporation.
*IBM is a trademark of the International Business Machine Corporation.
*DEC is the trademark of the Digital Equipment Corporation.
простое кодирование
В условии задачи имеется
закодированный и декодированный тексты. Следует перебрать всевозможные шифры
подстановки и угадать тот факт, что кодирование представляет собой циклический
сдвиг ASCII кодов символов на 7 (по модулю 256). Следовательно для
декодирования достаточно произвести циклический сдвиг ASCII кодов символов на
249 (по модулю 256).
Читаем посимвольно текст.
Каждый символ перевода каретки оставляем таким, как он есть. Иначе производим
циклический сдвиг каждого ASCII кода символа на 249 по модулю 256 и выводим как
символ.
char ch;
while (scanf("%c",
&ch) == 1)
if (ch == '\n') printf("\n");
else printf("%c", (char)((ch + 249) % 256));